Exception Handling in JSON

Java Technologies - অর্গ.জেসন (Org.Json)
84
84

অর্গ.জেসন (Org.Json) লাইব্রেরি Java-তে JSON ডাটা ম্যানিপুলেশন এবং স্টোরেজের জন্য একটি জনপ্রিয় টুল। JSON ডাটা ব্যবহার করার সময় এক্সসেপশন (Exception) হ্যান্ডলিং গুরুত্বপূর্ণ, কারণ JSON অবজেক্ট বা অ্যারে তৈরি, প্যার্স বা মডিফাই করার সময় কিছু ভুল বা ত্রুটি হতে পারে। যেমন ভুল ডাটা ফর্ম্যাট, অনুপস্থিত বা মিসিং কিপ-ভ্যালু পেয়ার ইত্যাদি।

অর্গ.জেসন লাইব্রেরি ব্যবহার করার সময় বিভিন্ন ধরনের এক্সসেপশন হতে পারে, যেগুলি সঠিকভাবে হ্যান্ডল করা জরুরি।

JSON Exception Handling

অর্গ.জেসন (Org.Json) লাইব্রেরি প্রধানত দুটি ধরনের এক্সসেপশন তৈরি করে:

  1. JSONException: এটি প্রধান এক্সসেপশন ক্লাস যা JSON সম্পর্কিত ত্রুটির জন্য ব্যবহৃত হয়। যেমন:
    • অবৈধ JSON সিঙ্কট্যাক্স
    • কিপ বা ভ্যালু উপস্থিত না থাকা
    • টোকেন বা ডাটা ভুল ফরম্যাটে থাকা

JSONException এর উদাহরণ

নিম্নলিখিত উদাহরণটি JSON প্যার্সিং এবং এক্সসেপশন হ্যান্ডলিংয়ের একটি সাধারণ উদাহরণ দেখায়, যেখানে অবৈধ JSON ফরম্যাটের কারণে JSONException তৈরি হবে।

উদাহরণ: JSONException Handling

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONException;

public class JSONExceptionExample {

    public static void main(String[] args) {
        try {
            // অবৈধ JSON স্ট্রিং
            String invalidJson = "{ 'name': 'John', 'age': 30, 'city': 'New York' ";

            // JSON প্যার্স করার চেষ্টা
            JSONObject jsonObject = new JSONObject(invalidJson);

        } catch (JSONException e) {
            // JSONException হ্যান্ডলিং
            System.out.println("JSON Parsing Error: " + e.getMessage());
        }
    }
}

কোডের ব্যাখ্যা

  1. String invalidJson = "{ 'name': 'John', 'age': 30, 'city': 'New York' ";
    এখানে একটি অবৈধ JSON স্ট্রিং তৈরি করা হয়েছে যেখানে } বন্ধ ট্যাগ অনুপস্থিত রয়েছে।
  2. JSONObject jsonObject = new JSONObject(invalidJson);
    new JSONObject(invalidJson) এই কোড লাইনে JSON প্যার্স করার চেষ্টা করা হয়। যেহেতু JSON স্ট্রিংটি ভুল, এটি একটি JSONException তৈরি করবে।
  3. catch (JSONException e)
    JSONException এক্সসেপশন ব্লক দ্বারা হ্যান্ডল করা হয়েছে। এক্সসেপশনটি হ্যান্ডল করার পর তার মেসেজ কনসোল/টার্মিনালে প্রদর্শন করা হয়।

JSONException এর প্রধান কারণ

  1. ভুল JSON ফরম্যাট: JSON স্ট্রিং যদি সঠিকভাবে ফর্ম্যাট না হয়, যেমন মিসিং কৌটেশন, বন্ধকারী ব্র্যাকেট বা কমা, তাহলে JSONException তৈরি হবে।
  2. অবৈধ কিপ-ভ্যালু পেয়ার: JSON অবজেক্টে যদি কিপ-ভ্যালু পেয়ার সঠিক না থাকে, যেমন কিপ না থাকলে, তাহলে তাও JSONException সৃষ্টি করবে।
  3. অবৈধ ডাটা টাইপ: JSON প্যার্সিংয়ের সময় যদি কোনো অবৈধ ডাটা টাইপ পাওয়া যায় (যেমন স্ট্রিংয়ে নাম্বার থাকা), তাহলে JSONException হবে।

সঠিক JSON ফরম্যাট

একটি সঠিক JSON ফরম্যাটের উদাহরণ:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

এই ফরম্যাটে সব কিপ-ভ্যালু পেয়ার সঠিকভাবে রাখা হয়েছে এবং সব কোডিং সিঙ্কট্যাক্স মেনে চলে।

JSON Parsing এবং Exception Handling

JSON ডাটা প্যার্স করার সময় আপনি একাধিক এক্সসেপশন হ্যান্ডলিং করতে পারেন, যেমন:

  • NullPointerException: যদি আপনি কোনো null JSON অবজেক্ট প্যার্স করার চেষ্টা করেন।
  • JSONException: যদি JSON স্ট্রিং বা অবজেক্টে কিছু ভুল থাকে।
  • JSONException for missing keys: যখন কোনো নির্দিষ্ট কিপ উপস্থিত না থাকে।

উদাহরণ: JSONObject থেকে কিপ অ্যাক্সেস করার সময় Exception Handling

import org.json.JSONObject;
import org.json.JSONException;

public class HandleMissingKey {

    public static void main(String[] args) {
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", "John");
            jsonObject.put("age", 30);

            // কিপ "city" নেই, তবে অ্যাক্সেস করার চেষ্টা করা হচ্ছে
            String city = jsonObject.getString("city"); // এটি JSONException সৃষ্টি করবে

        } catch (JSONException e) {
            // Missing key হ্যান্ডলিং
            System.out.println("Missing Key Error: " + e.getMessage());
        }
    }
}

কোডের ব্যাখ্যা:

  1. jsonObject.put("name", "John");
    এখানে name এবং age কিপ-ভ্যালু পেয়ার যোগ করা হচ্ছে।
  2. jsonObject.getString("city");
    এখানে আমরা "city" কিপ অ্যাক্সেস করার চেষ্টা করছি, কিন্তু এটি JSON অবজেক্টে উপস্থিত নেই। এটি একটি JSONException সৃষ্টি করবে।
  3. catch (JSONException e)
    এই এক্সসেপশন হ্যান্ডলিং ব্লকটি ব্যবহার করে যখন একটি কিপ উপস্থিত না থাকে তখন আমরা ত্রুটির মেসেজ কনসোল বা টার্মিনালে প্রদর্শন করতে পারি।

উপসংহার

অর্গ.জেসন (Org.Json) লাইব্রেরি ব্যবহার করার সময় JSONException হ্যান্ডলিং অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি JSON ডাটা প্যার্স বা মডিফাই করছেন। অবৈধ JSON ফরম্যাট, কিপ-ভ্যালু পেয়ার না থাকা, বা ডাটা টাইপের ভুল থাকার কারণে JSONException তৈরি হতে পারে। এই এক্সসেপশনগুলো সঠিকভাবে হ্যান্ডল করা প্রয়োজন যাতে আপনার অ্যাপ্লিকেশন নিরাপদ এবং নির্ভরযোগ্য হয়।

Content added By

JSONException কি এবং এর প্রয়োজনীয়তা

83
83

JSONException হল একটি এক্সসেপশন (exception) যা org.json লাইব্রেরির মাধ্যমে JSON ডেটা প্রক্রিয়া করার সময় উদ্ভূত হয়। যখন কোনো JSON অপারেশন, যেমন JSON অবজেক্ট বা অ্যারে পাস করা বা ম্যানিপুলেট করার সময় কোনো ভুল বা অনুপস্থিত তথ্য পাওয়া যায়, তখন এটি JSONException তৈরি হয়।

JSONException এর মূল কারণ

JSONException সাধারণত নিম্নলিখিত পরিস্থিতিতে তৈরি হতে পারে:

  1. অযৌক্তিক বা ভুল JSON স্ট্রিং: যখন JSON ডেটা স্ট্রিং ভুলভাবে ফর্ম্যাট করা হয়, যেমন অতিরিক্ত বা অনুপস্থিত কোটেশন মার্কস, বন্ধনী ইত্যাদি।
  2. অবজেক্ট বা অ্যারে পাস করার সময় ভুল ফরম্যাট: যখন JSON অবজেক্ট বা অ্যারে সঠিকভাবে পাস করা না হয়।
  3. অভ্যন্তরীণ ডেটার ভুল প্রকারভেদ: যখন কোনো JSON ডেটা প্রক্রিয়া করার সময় প্রয়োজনীয় ফিল্ড পাওয়া যায় না অথবা ডেটা প্রকার সঠিক নয়, যেমন একটি স্ট্রিংকে ইন্টিজারে কনভার্ট করার চেষ্টা করা।

JSONException এর প্রয়োজনীয়তা

JSONException এর প্রধান কাজ হল JSON ডেটার অবৈধ বা ভুল ব্যবহার সম্পর্কে ডেভেলপারকে সতর্ক করা। এটি ডেটা পার্সিং বা JSON ম্যানিপুলেশন করার সময় সমস্যা শনাক্ত করার জন্য একটি গুরুত্বপূর্ণ উপাদান।

JSONException ব্যবহার করা কেন গুরুত্বপূর্ণ?

  1. ডেটা ইন্টেগ্রিটি নিশ্চিত করা: JSON ডেটা প্রক্রিয়া করার সময় যদি কোনো ভুল থাকে, তবে JSONException ডেভেলপারকে তা জানায় এবং ডেটা ইন্টেগ্রিটি রক্ষা করে। এটি ডেটা স্ট্রাকচার বা কন্টেন্টে কোনো সমস্যা থাকলে দ্রুত সমস্যা চিহ্নিত করতে সাহায্য করে।
  2. এলার্ট এবং লগিং: যখন কোনো JSON প্রক্রিয়া করতে সমস্যা হয়, তখন JSONException ব্যবহার করে আপনি সমস্যাটি সনাক্ত করতে পারেন এবং যথাযথভাবে লগ করতে পারেন, যাতে ডেভেলপাররা তা সমাধান করতে পারেন।
  3. বিকল্প প্রক্রিয়া: JSONException হল একটি চেকিং পদ্ধতি যা অপ্রত্যাশিত বা ভুল ডেটার জন্য বিকল্প প্রক্রিয়া পরিচালনা করতে সহায়তা করে। উদাহরণস্বরূপ, একটি ভ্যালু না পাওয়া গেলে বা ভুল ডেটা ফর্ম্যাটে পাওয়া গেলে আপনি ফোলব্যাক মেকানিজম বা ডিফল্ট ভ্যালু সেট করতে পারেন।

JSONException এর উদাহরণ

উদাহরণ ১: JSONException যখন ভুল JSON স্ট্রিং পাস করা হয়

import org.json.JSONObject;
import org.json.JSONException;

public class JSONExceptionExample {
    public static void main(String[] args) {
        try {
            // ভুল JSON স্ট্রিং (অযৌক্তিক কোটেশন)
            String jsonString = "{name:John, age:30}";  // ভুল, কোটেশন মিসিং
            
            // JSON স্ট্রিং পার্স করার চেষ্টা
            JSONObject jsonObject = new JSONObject(jsonString);
        } catch (JSONException e) {
            // JSONException ক্যাচ করা
            System.out.println("JSONException: Invalid JSON format - " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • JSONException এখানে jsonString এর ভুল ফরম্যাটের কারণে তৈরি হয়। JSON ডেটা স্ট্রিং এ কোটেশন মার্কস ভুলভাবে দেওয়া হয়েছে, যার ফলে এটি JSONException তৈরি করে।

আউটপুট:

JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]

উদাহরণ ২: JSONException যখন অবজেক্টে নেই এমন ফিল্ডের জন্য এক্সেস করা হয়

import org.json.JSONObject;
import org.json.JSONException;

public class JSONExceptionExample2 {
    public static void main(String[] args) {
        try {
            // সঠিক JSON স্ট্রিং
            String jsonString = "{\"name\":\"John\", \"age\":30}";

            // JSON স্ট্রিং পার্স করা
            JSONObject jsonObject = new JSONObject(jsonString);

            // 'address' ফিল্ড অনুপস্থিত, অথচ এক্সেস করার চেষ্টা
            String address = jsonObject.getString("address");
        } catch (JSONException e) {
            // JSONException ক্যাচ করা
            System.out.println("JSONException: Missing field 'address' - " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • getString("address") ফিল্ডটি JSON অবজেক্টে অনুপস্থিত, তাই JSONException হবে।
  • ডেভেলপার যখন ভুলভাবে কোনো অবজেক্ট থেকে অনুপস্থিত ফিল্ড এক্সেস করার চেষ্টা করেন, তখন JSONException তৈরি হয়।

আউটপুট:

JSONException: JSONObject["address"] not found.

JSONException এর সমাধান

JSONException এড়ানোর জন্য কিছু ভালো প্র্যাকটিস:

  1. JSON ফরম্যাট যাচাই করুন: JSON স্ট্রিং পাস করার আগে এটি সঠিকভাবে ফরম্যাট করা হয়েছে কিনা তা যাচাই করুন।
  2. ফিল্ড উপস্থিতি পরীক্ষা করুন: optString() বা optInt() ব্যবহার করুন, যা ফিল্ড না থাকলে null বা ডিফল্ট মান ফেরত দেয়, যাতে অ্যাপ্লিকেশন ক্র্যাশ না হয়।
  3. এলার্ট এবং এক্সেপশন হ্যান্ডলিং: JSON ডেটা প্রক্রিয়া করার সময় try-catch ব্লক ব্যবহার করে সম্ভাব্য এক্সেপশন সঠিকভাবে হ্যান্ডল করুন।

সারাংশ

JSONException হল একটি এক্সসেপশন যা org.json লাইব্রেরি ব্যবহার করে JSON ডেটা প্রক্রিয়া করার সময় ঘটে যখন JSON স্ট্রিং বা অবজেক্টের মধ্যে কোনো ভুল থাকে। এটি ডেভেলপারকে জানায় যে কোনো ডেটা প্রক্রিয়ায় সমস্যা আছে এবং এটি ডেটার ইন্টেগ্রিটি রক্ষা করতে সহায়তা করে। JSONException অ্যাপ্লিকেশন ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এটি ডেটা প্রক্রিয়ার ত্রুটি শনাক্ত করতে এবং সঠিকভাবে ত্রুটির ব্যাখ্যা দিতে সাহায্য করে।


Content added By

JSONException এর সাধারণ কারণ এবং প্রতিরোধ কৌশল

67
67

Org.JSON লাইব্রেরি ব্যবহার করার সময় JSONException একটি সাধারণ ত্রুটি যা ঘটে যখন JSON ডেটা প্রক্রিয়াকরণে কোনো সমস্যা হয়। এটি মূলত JSONObject বা JSONArray এর অপারেশনগুলির মাধ্যমে ঘটে থাকে। JSONException সাধারণত তখন দেখা দেয় যখন আপনি JSON ডেটার স্ট্রিং ম্যানিপুলেট বা পার্স করার চেষ্টা করেন এবং কিছু ভুল হয় যেমন অবৈধ JSON স্ট্রিং বা কীগুলোর অসামঞ্জস্য।

এখানে আমরা JSONException এর কিছু সাধারণ কারণ এবং সেই ত্রুটিগুলো এড়ানোর জন্য কীভাবে প্রতিরোধ করা যায়, তা আলোচনা করব।


JSONException এর সাধারণ কারণ

  1. অবৈধ JSON স্ট্রিং

    JSON স্ট্রিং যদি অবৈধ হয়, যেমন সঠিকভাবে কোষ-চিহ্ন (quotes) ব্যবহার না করা বা অতিরিক্ত কমা (comma) থাকা, তবে JSONException ঘটবে।

    উদাহরণ: অবৈধ JSON স্ট্রিং

    String jsonString = "{\"name\":\"John\", age:30}";
    JSONObject jsonObject = new JSONObject(jsonString);
    

    এখানে, age:30 সঠিক JSON স্ট্রিং নয় কারণ কীগুলোর চারপাশে ডাবল কোটেশন চিহ্ন থাকতে হবে।

    সমাধান: JSON স্ট্রিং সঠিকভাবে ফরম্যাট করা প্রয়োজন, যেখানে কীগুলো অবশ্যই ডাবল কোটেশনে থাকতে হবে।

    String jsonString = "{\"name\":\"John\", \"age\":30}";
    JSONObject jsonObject = new JSONObject(jsonString);
    
  2. অবিদ্যমান কীগুলি এক্সেস করা

    যদি আপনি এমন কোনো কী (key) এক্সেস করার চেষ্টা করেন যা JSON অবজেক্টে বিদ্যমান নয়, তবে JSONException হবে।

    উদাহরণ:

    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", "Alice");
    String city = jsonObject.getString("city"); // "city" কী নেই, JSONException ঘটবে
    

    এখানে, "city" কী বিদ্যমান নয়, তাই JSONException হবে।

    সমাধান: আপনি optString() বা has() মেথড ব্যবহার করতে পারেন যা কীগুলি বিদ্যমান কিনা তা পরীক্ষা করে এবং ত্রুটি এড়ায়।

    if (jsonObject.has("city")) {
        String city = jsonObject.getString("city");
    }
    
  3. ডেটা টাইপের অসামঞ্জস্য

    যদি আপনি এমন একটি টাইপ এক্সপেক্ট করেন যা আসলে JSON ডেটাতে নেই, যেমন স্ট্রিং এর জায়গায় ইনটিজার, তবে JSONException ঘটবে।

    উদাহরণ:

    String jsonString = "{\"age\":25}";
    JSONObject jsonObject = new JSONObject(jsonString);
    String age = jsonObject.getString("age"); // "age" আসলে ইনটিজার, JSONException ঘটবে
    

    এখানে "age" কীগুলোর মান একটি ইনটিজার, কিন্তু getString() মেথড স্ট্রিং এক্সপেক্ট করছে।

    সমাধান: যদি আপনি নিশ্চিত না হন যে কীগুলোর মান ঠিক কী ধরনের, তাহলে optString() বা optInt() ব্যবহার করা উচিত।

    int age = jsonObject.optInt("age", 0); // Default value 0
    
  4. অসঙ্গত অ্যারে ইনডেক্স এক্সেস

    JSONArray এর মধ্যে একটি ইনডেক্সে থাকা ডেটা এক্সেস করতে গেলে যদি ওই ইনডেক্সটি অবৈধ হয় বা অ্যারের আকারের বাইরে থাকে, তবে JSONException ঘটবে।

    উদাহরণ:

    String jsonArrayString = "[\"apple\", \"banana\"]";
    JSONArray jsonArray = new JSONArray(jsonArrayString);
    String fruit = jsonArray.getString(3); // ইনডেক্স 3 অ্যারের বাইরে, JSONException ঘটবে
    

    এখানে, ইনডেক্স 3 একটি ভুল ইনডেক্স কারণ অ্যারেতে মোট ২টি আইটেম রয়েছে (ইনডেক্স 0 এবং 1)।

    সমাধান: ইনডেক্স চেক করতে আগে অ্যারের সাইজ যাচাই করতে হবে।

    if (jsonArray.length() > 3) {
        String fruit = jsonArray.getString(3);
    }
    
  5. অবৈধ কাস্টম অবজেক্ট এক্সট্র্যাকশন

    যদি আপনি JSONObject থেকে কাস্টম অবজেক্ট বা এমন কোনো কাস্টম ডেটা টাইপ এক্সট্র্যাক্ট করতে চান যেটি JSON ফরম্যাটে মাপসই না হয়, তবে JSONException ঘটবে।

    উদাহরণ:

    String jsonString = "{\"person\": {\"name\": \"John\", \"age\": 25}}";
    JSONObject jsonObject = new JSONObject(jsonString);
    Person person = jsonObject.get("person"); // JSONException হবে, কারণ Person অবজেক্ট নয়
    

    এখানে, আপনি JSON অবজেক্টের মধ্যে Person ক্লাসের অবজেক্ট পাচ্ছেন, যা ভুল টাইপ।

    সমাধান: কাস্টম অবজেক্ট পার্স করার আগে JSON স্ট্রিংকে সঠিকভাবে কাস্টম টাইপে রূপান্তরিত করা প্রয়োজন।

    JSONObject personObject = jsonObject.getJSONObject("person");
    String name = personObject.getString("name");
    

JSONException প্রতিরোধের কৌশল

  1. সঠিক JSON ফরম্যাটে ডেটা সরবরাহ: JSON ডেটা সঠিকভাবে ফরম্যাট করা উচিত যাতে JSON স্ট্রিং বা অবজেক্ট বৈধ থাকে এবং কোনো সিনট্যাক্স ত্রুটি না ঘটে।
  2. has() মেথড ব্যবহার করা: has() মেথডের মাধ্যমে আপনি চেক করতে পারেন যে কোনো কী JSON অবজেক্টে উপস্থিত কিনা। এটি JSONException প্রতিরোধ করতে সাহায্য করে।

    if (jsonObject.has("age")) {
        int age = jsonObject.getInt("age");
    }
    
  3. opt() মেথড ব্যবহার করা: optString(), optInt() ইত্যাদি মেথড ব্যবহার করে আপনি যদি কী না থাকে তাহলে একটি ডিফল্ট মান পেতে পারেন, যা JSONException প্রতিরোধ করবে।

    String name = jsonObject.optString("name", "Unknown"); // Default value "Unknown"
    int age = jsonObject.optInt("age", 0); // Default value 0
    
  4. অ্যারে ইনডেক্স চেক করা: যখন JSON অ্যারে থেকে ডেটা এক্সট্র্যাক্ট করতে হবে, তখন অ্যারের আকার চেক করে নিশ্চিত করুন যে ইনডেক্সটি বৈধ।
  5. ডেটা টাইপের সঠিকতা যাচাই করা: opt() মেথড ব্যবহার করুন যাতে আপনি ডেটার টাইপ পরীক্ষা করতে পারেন এবং সঠিক মান পেতে পারেন। এটি টাইপের অমিলের কারণে JSONException প্রতিরোধ করবে।

সারাংশ

JSONException হলো Org.JSON লাইব্রেরি ব্যবহার করার সময় ঘটে যাওয়া একটি সাধারণ ত্রুটি, যা মূলত অবৈধ JSON ডেটা, কীগুলোর উপস্থিতি না থাকা, ডেটার টাইপের অসামঞ্জস্য, বা অ্যারের ইনডেক্সের বাইরে যাওয়ার কারণে ঘটে। এই ত্রুটিগুলি প্রতিরোধ করতে সঠিক JSON ফরম্যাট, has()opt() মেথড ব্যবহার, এবং অ্যারে বা কীগুলির সাথে কাজ করার আগে যাচাই করা উচিত।

Content added By

উদাহরণ সহ JSONException Handling

73
73

JSON ডেটা পার্স করার সময় কিছু সমস্যা বা ত্রুটি (error) হতে পারে, যেমন অবৈধ JSON ফরম্যাট বা অনুপস্থিত কীগুলোর জন্য অ্যাক্সেস চাওয়া। এ ধরনের ত্রুটির জন্য JSONException একটি সাধারণ এক্সসেপশন, যা JSON লাইব্রেরি (যেমন Org.JSON) দ্বারা উত্তোলিত হয়। JSONException এর মাধ্যমে আমরা JSON ডেটা পার্স করার সময় 발생 করা ত্রুটিগুলো সঠিকভাবে হ্যান্ডেল করতে পারি।

এই টিউটোরিয়ালে, Org.JSON লাইব্রেরি ব্যবহার করে JSONException হ্যান্ডলিংয়ের কিছু উদাহরণ দেখানো হবে।


১. JSONException হ্যান্ডলিংয়ের মৌলিক ধারণা

Org.JSON লাইব্রেরি ব্যবহার করে যখন আমরা JSON ডেটা পার্স করি, তখন কিছু সাধারণ ত্রুটি হতে পারে:

  • অবৈধ JSON স্ট্রিং: যদি JSON স্ট্রিং সঠিকভাবে ফরম্যাট না করা হয়, তবে একটি JSONException উঠতে পারে।
  • কী-র অনুপস্থিতি: যদি কোনো JSON অবজেক্টে একটি নির্দিষ্ট কী না থাকে, তবে সেই কীর জন্য অ্যাক্সেস করলে JSONException উঠতে পারে।

২. JSONException হ্যান্ডলিংয়ের উদাহরণ

উদাহরণ ১: অবৈধ JSON স্ট্রিং পার্সিং

যখন একটি অবৈধ JSON স্ট্রিং পার্স করার চেষ্টা করা হয়, তখন JSONException হ্যান্ডল করা প্রয়োজন।

import org.json.JSONException;
import org.json.JSONObject;

public class JSONExceptionHandlingExample {
    public static void main(String[] args) {
        // অবৈধ JSON স্ট্রিং (উদ্ধৃতি ভুলভাবে বন্ধ)
        String jsonString = "{\"name\":\"Alice\",\"age\":30,}";

        try {
            // JSON স্ট্রিং পার্স করার চেষ্টা
            JSONObject jsonObject = new JSONObject(jsonString);
        } catch (JSONException e) {
            // JSONException হ্যান্ডলিং
            System.out.println("JSONException occurred: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • JSONException: যখন JSON স্ট্রিং সঠিকভাবে ফরম্যাট করা হয় না, তখন JSONException উঠবে। এখানে jsonString একটি অবৈধ JSON স্ট্রিং, কারণ এর মধ্যে একটি অতিরিক্ত কমা (,) রয়েছে।
  • try-catch block: JSON স্ট্রিং পার্স করার জন্য একটি try-catch ব্লক ব্যবহার করা হয়েছে, যেখানে JSONException ক্যাচ করা হয় এবং তার মেসেজ প্রিন্ট করা হয়।

আউটপুট:

JSONException occurred: A JSONObject text must begin with '{' at 1 [character 2 line 1]

এখানে, অবৈধ JSON স্ট্রিংয়ের কারণে JSONException উঠেছে এবং এর ব্যাখ্যা মেসেজ প্রিন্ট করা হয়েছে।


উদাহরণ ২: অনুপস্থিত কী অ্যাক্সেস

এখন দেখবো কিভাবে JSONException হ্যান্ডলিং করতে হয় যখন আমরা একটি অনুপস্থিত কী অ্যাক্সেস করার চেষ্টা করি।

import org.json.JSONException;
import org.json.JSONObject;

public class JSONExceptionHandlingExample {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{\"name\":\"Bob\",\"age\":25}";

        try {
            // JSON স্ট্রিং পার্স করা
            JSONObject jsonObject = new JSONObject(jsonString);

            // "address" কী থেকে মান এক্সট্র্যাক্ট করার চেষ্টা
            String address = jsonObject.getString("address");  // "address" কী নেই
        } catch (JSONException e) {
            // JSONException হ্যান্ডলিং
            System.out.println("JSONException occurred: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • getString("address"): এখানে "address" কী JSON অবজেক্টে নেই, তাই এটি একটি JSONException ঘটাবে।
  • JSONException: getString() মেথড যখন কীর মান না পায়, তখন JSONException থ্রো করবে।
  • try-catch block: try-catch ব্লক ব্যবহার করে আমরা JSONException হ্যান্ডল করতে পারি এবং এর ব্যাখ্যা দেখাতে পারি।

আউটপুট:

JSONException occurred: JSONObject[\"address\"] not found.

এখানে, "address" কী অনুপস্থিত হওয়ায় JSONException উঠে এবং এর ব্যাখ্যা মেসেজ প্রদর্শিত হয়েছে।


৩. JSONException এর আরও হ্যান্ডলিং মেথড

Org.JSON লাইব্রেরি ব্যবহার করে আরো কিছু মেথড রয়েছে যা JSONException হ্যান্ডলিংকে সহজ করে তোলে:

  • optString(): যদি কোনো কী না থাকে, তবে এটি একটি ডিফল্ট মান ফেরত দেয়, এবং JSONException উত্তোলন করে না।

    String address = jsonObject.optString("address", "Unknown Address");
    
  • optInt(): যদি কোনো কী না থাকে, তবে এটি একটি ডিফল্ট মান ফেরত দেয় (ইনটিজার)।

    int age = jsonObject.optInt("age", 0);
    
  • has(): এটি পরীক্ষা করে যে, একটি কী JSON অবজেক্টে রয়েছে কিনা, এবং JSONException থেকে বাঁচতে সাহায্য করে।

    if (jsonObject.has("name")) {
        String name = jsonObject.getString("name");
    } else {
        System.out.println("Name not found.");
    }
    

সারাংশ

JSONException হ্যান্ডলিং JSON ডেটা পার্স করার সময় খুবই গুরুত্বপূর্ণ। Org.JSON লাইব্রেরি ব্যবহার করে JSON স্ট্রিং পার্সিংয়ের সময় যদি অবৈধ ফরম্যাট বা অনুপস্থিত কীগুলোর জন্য অ্যাক্সেস করার চেষ্টা করা হয়, তবে JSONException উত্তোলিত হয়। এই ত্রুটিগুলো সঠিকভাবে হ্যান্ডল করতে try-catch ব্লক এবং বিভিন্ন opt এবং has() মেথড ব্যবহার করা যেতে পারে। এটি আপনার অ্যাপ্লিকেশনকে আরও রোবাস্ট এবং ব্যবহারকারী-বান্ধব করে তোলে।


Content added By
Promotion